#ifdef GL_ES
precision mediump float;
#endif

uniform vec2 u_resolution;// 视口大小

void main(){
    // gl_FragCoord 是内置变量，表示当前像素的窗口坐标
    vec2 st=gl_FragCoord.xy/u_resolution.xy;// 归一化 将坐标转换为0-1范围
    
    // gl_FragColor=vec4(st.x,0.,0.,1.);// 输出颜色
    
    // gl_FragColor=vec4(st.x,st.y,0.,1.);// 输出颜色
    
    // float stepV=step(.5,st.x);// 判断st.x是否大于0.5
    // gl_FragColor=vec4(vec3(stepV),1.);// 输出颜色
    
    // float stepV=step(.5,st.x);// 判断st.x是否大于0.5
    // gl_FragColor=vec4(0,0,stepV,1.);// 输出颜色
    
    // float stepV=step(.5,st.x);// 判断st.x是否大于0.5
    // gl_FragColor=vec4(vec3(stepV),1.);// 输出颜色
    
    // 从原点渐变
    // float d=length(st);// 计算点到中心的距离
    // gl_FragColor=vec4(d,0,0.,1.);// 输出颜色
    
    // 使用step 函数 规划空间颜色
    // float d=length(st);// 计算点到中心的距离
    // float stepV=step(.5,d);// 判断距离是否大于0.5
    // gl_FragColor=vec4(stepV,0,0.,1.);// 输出颜色
    
    // float d=length(st);// 计算点到中心的距离
    // float stepV=1.-step(.5,d);// 颜色反转
    // gl_FragColor=vec4(stepV,0,0.,1.);// 输出颜色
    // st=st-.5;// 将坐标转换为-0.5-0.5范围
    // float d=length(st);// 计算点到中心的距离
    // float stepV=1.-step(.5,d);// 颜色反转
    // gl_FragColor=vec4(stepV,0,0.,1.);// 输出颜色
    
    // st=st*2.-1.;// 将坐标转换为-1-1范围
    // float d=length(st);// 计算点到中心的距离
    // float stepV=1.-step(.5,d);// 颜色反转0
    // gl_FragColor=vec4(stepV,0,0.,1.);// 输出颜色
    
    st=st*2.-1.;// 将坐标转换为-1-1范围
    st.x*=u_resolution.x/u_resolution.y;// 保持宽高比
    float d=length(st);// 计算点到中心的距离
    float stepV=1.-step(.5,d);// 颜色反转0
    gl_FragColor=vec4(stepV,0,0.,1.);// 输出颜色
    
    // float d=length(st-vec2(.5,.5));// 计算点到中心的距离
    // float t=smoothstep(.45,.55,d);// 平滑过渡
    // gl_FragColor=vec4(vec3(t),1.);// 输出颜色
    
    // vec2 st=st-.5;// 将坐标转换为-0.5-0.5范围
    // vec3 color=vec3(1.);
    // float lengthv=length(st);
    // float sphere=max(0.,lengthv*2);
    // color=vec3(sphere);
    // float sphereAlpha=step(.5,sphere);
    // gl_FragColor=vec4(color,1);
    
}